协方差矩阵
协方差公式定义:
协方差矩阵:
上面的两个散点图分别展示了两种不同协方差矩阵生成的随机点分布:
左图对应协方差矩阵
右图对应协方差矩阵
单位矩阵
退化矩阵
通过这种直观的观察,你可以看到不同的协方差矩阵如何影响数据的分布。单位矩阵生成的点分布更分散,而退化矩阵生成的点更集中,沿某个方向排列。这有助于理解数据中的变量之间的关系以及它们对数据分布的影响。
import numpy as np
import matplotlib.pyplot as plt
# Setting random seed for reproducibility
np.random.seed(42)
# Generate 100 random points for each covariance matrix
mean = [0, 0]
cov_identity = [[1, 0], [0, 1]]
cov_degenerate = [[1, 1], [1, 1]]
data_identity = np.random.multivariate_normal(mean, cov_identity, 100)
data_degenerate = np.random.multivariate_normal(mean, cov_degenerate, 100)
# Plot the scatter plots
fig, ax = plt.subplots(1, 2, figsize=(12, 6))
# Scatter plot for identity covariance matrix
ax[0].scatter(data_identity[:, 0], data_identity[:, 1], color='blue', alpha=0.5)
ax[0].set_title('Covariance Matrix [1, 0; 0, 1]')
ax[0].set_xlim(-5, 5)
ax[0].set_ylim(-5, 5)
ax[0].set_xlabel('X-axis')
ax[0].set_ylabel('Y-axis')
ax[0].grid(True)
# Scatter plot for degenerate covariance matrix
ax[1].scatter(data_degenerate[:, 0], data_degenerate[:, 1], color='red', alpha=0.5)
ax[1].set_title('Covariance Matrix [1, 1; 1, 1]')
ax[1].set_xlim(-5, 5)
ax[1].set_ylim(-5, 5)
ax[1].set_xlabel('X-axis')
ax[1].set_ylabel('Y-axis')
ax[1].grid(True)
plt.tight_layout()
plt.show()